package com.dong.pointandviewpager.sample.activity

import android.graphics.Color
import com.dong.pointandviewpager.sample.factory.DataFactory.newDataBeans
import com.dong.pointandviewpager.sample.factory.ListenerFactory.newChangedListener
import com.dong.pointandviewpager.sample.factory.ListenerFactory.newClickListener
import androidx.appcompat.app.AppCompatActivity
import com.dong.pointviewpager.widget.LoopViewPager
import android.os.Bundle
import android.widget.ImageView
import com.dong.pointandviewpager.R
import com.dong.pointviewpager.widget.PointGalleryViewPager
import com.dong.pointviewpager.widget.PointView
import com.dong.pointandviewpager.sample.factory.ListenerFactory
import com.dong.pointandviewpager.sample.model.ModelBean
import kotlinx.android.synthetic.main.activity_looper.*
import kotlinx.android.synthetic.main.activity_point_gallery.*

class PointGalleryActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_point_gallery)

        //设置PointGallery中LoopViewPager的参数
        initLoopViewPager()
        //设置PointGallery中PointView的参数
        initPointView()
        //设置PointGallery中其他参数
        initGalleryViewPager()
    }

    private fun initLoopViewPager() {
        var loopViewPager = pointGalleryViewPager?.loopViewPager as LoopViewPager<ModelBean>
        loopViewPager?.run {
            beans = newDataBeans()
            setLoop(true)
            setAuto(false)
            setRadius(1f)
            setImageScale(ImageView.ScaleType.CENTER_CROP)
            onLoopPageChangeListener = newChangedListener()
            onLoopPagerClickListener = newClickListener()
            initialise()
        }
    }

    private fun initPointView() {
        pointGalleryViewPager.pointView?.run {
            setNFColor(Color.RED) //设置未被选中时小圆点的颜色(默认白色)
            setFColor(Color.BLUE) //设置选中时小圆点的演的（默认红色）
            setDisBottom(10f) //设置距离控件底部的距离
            setDistance(8f) //设置小圆点之间的间隔距离
            setRadius(3f) //设置小圆点的半径
            scrollType = PointView.SMOOTH_SCROLL //设置小圆点的滑动方式（INSTANT_SCROLL或SMOOTH_SCROLL）
            initialise()
        }
    }

    private fun initGalleryViewPager() {
        pointGalleryViewPager?.run {
            setPageWidth(280) //设置ViewPager的宽度，适当小于GalleryViewPager的宽度
            setPageHeight(150) //设置ViewPager的高度，原高度/PageCenterScale
            setPageDistance(100f) // 两侧页卡的缩进距离
            setPageScale(0.8.toFloat()) //设置两侧隐藏页面的缩放比例
            setPageAlpha(0.5.toFloat()) //设置两侧隐藏页面的透明度
            setPageRotation(0f)
            initialise()
        }
    }
}